As computers have become more complex and powerful, the manner in which end users or operators interface with computers has grown increasingly important. Early computers relied on switches, lights, and/or punch cards that required an end user to interact essentially in the computers' native binary languages. Eventually, video displays were developed that enabled end users to interact with computers through textual information and commands. Another significant step in this evolution was the development of graphical user interfaces (GUIs), which permitted end users to interact with computers through the more intuitive operations of "pointing and clicking" on graphical display elements with a pointer controlled by a mouse or other user interface device.
Information is often presented to an end user in a GUI environment using a graphical user interface component known as a window. A window may sometimes be used to display a relatively large document with only a portion of the document shown at any given time. Typically, scroll bar controls on the window may then be used to navigate through the document so that a user can view different portions of the document. In addition, using other controls on the window, a user may perform various operations on the window, including moving the window to another position on the display, resizing the window by moving one or more segments of its boundary, minimizing the window into an icon representation, maximizing the window to occupy the entire display, etc. Other windows, such as dialog boxes and the like, may omit one or more of the above-described controls.
Each computer software application executing in a GUI environment is typically allocated one or more windows to present information to and/or receive input from a user. Moreover, a number of computer systems provide the ability to multitask--that is, to execute more than one computer software application at the same time--such that windows from multiple applications may be displayed on a computer display simultaneously. As a result, a large number of windows may be displayed on a computer system at any given time.
Multiple windows are typically displayed in a computer system in an overlapping fashion, with the top window designated an active window associated with the computer software application to which user input will be directed. Any overlapped portions of inactive windows are hidden from the user. Inactive windows are then typically activated and brought to the top by pointing and clicking on the windows (although other possible user inputs may also be used).
Users often need to access multiple windows quickly and frequently when performing computer tasks. However, when a large number of windows are displayed at the same time on a computer display, it can often become difficult to interact with each window due to the limited space available on the computer display. Windows can become fully hidden behind other windows when the other windows are activated by pointing and clicking, and thereafter are not accessible to a user without a great deal of user interaction. Operations such as moving and resizing are also often burdensome since the controls to perform such actions are defined at specific locations on the windows. Consequently, a user may spend an inordinate amount of time manipulating windows, rather than performing the computer tasks at hand.
Therefore, a significant need exists for an improved manner of manipulating graphical user interface components such as windows and the like in a graphical user interface environment.